#ifndef CONTEXTFREEGRAMMAR_LL_H
#define CONTEXTFREEGRAMMAR_LL_H

#include "ContextFreeGrammar.h"


class ContextFreeGrammar_LL : public ContextFreeGrammar
{
public:
    ContextFreeGrammar_LL(std::istream & in);
    virtual ~ContextFreeGrammar_LL();

    void EliminateLeftRecur();
    void EliminateNullable();

protected:

    void LeftFactoring();
    void EliminateLeftRecurSingle(StringSet::const_iterator nonterm);

private:
};

#endif // CONTEXTFREEGRAMMAR_LL_H
